package smsapi.model;

import com.fasterxml.jackson.annotation.JsonProperty;

import java.time.OffsetDateTime;
import java.util.ArrayList;
import java.util.List;

/**
 * 待发短信
 */
public class SendSms {
  @JsonProperty("ChannelId")
  private Integer channelId = null;

  @JsonProperty("CellNumber")
  private List<String> cellNumber = null;

  @JsonProperty("Appointment")
  private Boolean appointment = null;

  @JsonProperty("PlanTime")
  private OffsetDateTime planTime = null;

  @JsonProperty("Content")
  private String content = null;

  @JsonProperty("Prioritylevel")
  private String prioritylevel = null;

  @JsonProperty("MsgId")
  private String msgId = null;

  @JsonProperty("Template")
  private TemplateSms template = null;

  @JsonProperty("SignId")
  private Integer signId = null;

  @JsonProperty("Sign")
  private String sign = null;

  @JsonProperty("LinkID")
  private Long linkID = null;

  public SendSms channelId(Integer channelId) {
    this.channelId = channelId;
    return this;
  }

   /**
   * 可选参数，通道ID
   * @return channelId
  **/
  public Integer getChannelId() {
    return channelId;
  }

  public void setChannelId(Integer channelId) {
    this.channelId = channelId;
  }

  public SendSms cellNumber(List<String> cellNumber) {
    this.cellNumber = cellNumber;
    return this;
  }

  public SendSms addCellNumberItem(String cellNumberItem) {
    if (this.cellNumber == null) {
      this.cellNumber = new ArrayList<String>();
    }
    this.cellNumber.add(cellNumberItem);
    return this;
  }

   /**
   * 目标号码
   * @return cellNumber
  **/
  public List<String> getCellNumber() {
    return cellNumber;
  }

  public void setCellNumber(List<String> cellNumber) {
    this.cellNumber = cellNumber;
  }

  public SendSms appointment(Boolean appointment) {
    this.appointment = appointment;
    return this;
  }

   /**
   * 是否是预约短信
   * @return appointment
  **/
  public Boolean isAppointment() {
    return appointment;
  }

  public void setAppointment(Boolean appointment) {
    this.appointment = appointment;
  }

  public SendSms planTime(OffsetDateTime planTime) {
    this.planTime = planTime;
    return this;
  }

   /**
   * 预约时间
   * @return planTime
  **/
  public OffsetDateTime getPlanTime() {
    return planTime;
  }

  public void setPlanTime(OffsetDateTime planTime) {
    this.planTime = planTime;
  }

  public SendSms content(String content) {
    this.content = content;
    return this;
  }

   /**
   * 短信内容
   * @return content
  **/
  public String getContent() {
    return content;
  }

  public void setContent(String content) {
    this.content = content;
  }

  public SendSms prioritylevel(String prioritylevel) {
    this.prioritylevel = prioritylevel;
    return this;
  }

   /**
   * 优先级
   * @return prioritylevel
  **/
  public String getPrioritylevel() {
    return prioritylevel;
  }

  public void setPrioritylevel(String prioritylevel) {
    this.prioritylevel = prioritylevel;
  }

  public SendSms msgId(String msgId) {
    this.msgId = msgId;
    return this;
  }

   /**
   * 短消息流水号
   * @return msgId
  **/
  public String getMsgId() {
    return msgId;
  }

  public void setMsgId(String msgId) {
    this.msgId = msgId;
  }

  public SendSms template(TemplateSms template) {
    this.template = template;
    return this;
  }

   /**
   * 模板-如果是普通短信值为null
   * @return template
  **/
  public TemplateSms getTemplate() {
    return template;
  }

  public void setTemplate(TemplateSms template) {
    this.template = template;
  }

  public SendSms signId(Integer signId) {
    this.signId = signId;
    return this;
  }

   /**
   * 签名ID
   * @return signId
  **/
  public Integer getSignId() {
    return signId;
  }

  public void setSignId(Integer signId) {
    this.signId = signId;
  }

  public SendSms sign(String sign) {
    this.sign = sign;
    return this;
  }

   /**
   * 短信签名内容
   * @return sign
  **/
  public String getSign() {
    return sign;
  }

  public void setSign(String sign) {
    this.sign = sign;
  }

  public SendSms linkID(Long linkID) {
    this.linkID = linkID;
    return this;
  }

   /**
   * 保留原值返回
   * @return linkID
  **/
  public Long getLinkID() {
    return linkID;
  }

  public void setLinkID(Long linkID) {
    this.linkID = linkID;
  }


}

